10678
4761
Deze vraag heeft hier al antwoorden:
Hoe retourneer ik het antwoord van een asynchrone oproep?
(42 antwoorden)
5 maanden geleden gesloten.
Dus als de volgende code wordt uitgevoerd, is het antwoord van de console.log (ba) ongedefinieerd
Maar als ik dit probeer in de Chrome V8-console, krijg ik de juiste uitvoer die ik verwacht. Ik weet niet helemaal zeker wat hier aan de hand is.
laat ba;
functie Setqa () {
(async () => {
wacht op fetch ('questions.json')
. dan (res => res.json ())
.then (async (data) => {
ba = wacht op gegevens;
​
​
​
Setqa ();
console.log (ba);
De inhoud van het json-bestand is als volgt:
"vragen": [{
"questionType": "meerdere",
"question": "Hoe is het weer",
"antwoorden": "",
"vraag antwoord": ""
​
​
"questionType": "meerdere",
"question": "Hoe gaat het vandaag?",
"antwoorden": " 1",
"questionAnswer": "textPurpose1"
​
​ 
Ik denk dat dat zou moeten werken
laat ba;
functie Setqa () {
return fetch ('questions.json')
. dan (res => res.json ())
.then (async (data) => {
ba = wacht op gegevens;
​
​
Setqa (). Dan (() => console.log (ba));
Maar een betere aanpak zou zijn
async-functie setQa () {
const res = wachten op ophalen ('questions.json');
retourneer res.json ();
​
laat ba = wachten setQa ();
​
Niet het antwoord waar je naar zoekt? Blader door andere vragen met de tag javascript json fetch console.log of stel uw eigen vraag.